// utils
window.K = window.K || {};
/**
 * 指定符号把数组中的元素连接起来
 * 
 * @param array
 *            数组元素
 * @param propertyHandler
 *            指定数组元素的某个属性,或者是一个处理函数
 * @param separator
 *            连接符号,默认为','
 */
K.arrayToStr = function(array, propertyHandler, separator) {
	array = array || [];
	var value = null, strs = [];
	$.each(array, function(i, v) {
		if (propertyHandler) {
			if (typeof propertyHandler == "function") {
				value = propertyHandler(v);
			} else {
				value = v[propertyHandler];
			}
		} else {
			value = v;
		}
		strs.push(value);
	});
	return strs.length > 0 ? strs.join(separator || ",") : "";
}
/**
 * 把数组转成{}对象<br>
 * ["aaa", "bbb", "ccc"] -> {"aaa":"aaa", "bbb":"bbb", "ccc":"ccc"} <br>
 * [{id:1, text:"first"}, {id:2, text:"second"}] -> {{1:{...}, 2:{....}}<br>
 * [{id:1, text:"first"}, {id:2, text:"second"}] -> {{1:{...}, 2:{....}}
 * 
 * @param array
 *            数组
 * @param key
 *            生成map的key
 * @param valueKey
 *            如果提供则生成map的之值的获取将为对象的valueKey属性值
 */
K.arrayToMap = function(array, key, valueKey) {
	if (!array) {
		return {};
	}
	var map = {};
	$.each(array, function(i, v) {
		if (key) {
			map[key] = valueKey ? v[valueKey] : v;
		} else {
			map[v] = v;
		}
	});
	return map;
}

/**
 * 第一个字母大写
 */
K.capitalize = function(str) {
	return !str ? str : str.charAt(0).toUpperCase() + str.substring(1, str.length);
}

/**
 * 第一个字母小写
 */
K.uncapitalize = function(str) {
	return !str ? str : str.charAt(0).toLowerCase() + str.substring(1, str.length);
}
